The present invention generally relates to the field of data storage, and particularly to a method for managing critical data in an N-way mirrored storage device.
Persistent, efficient and safe storage of electronic data is of the utmost importance. Every aspect of modem life, from electronic commerce, storage of business and personal information, and the like have as a necessary and integral component the use and storage of electronic data. One method utilized to ensure access to electronic data is the use of a storage system employing a plurality of separate electronic data storage devices. For example, a storage system may include a variety of disk drives arranged in a redundant array of independent disks (RAID) format, with data mirrored across the plurality of disks. In this way, should one device become unavailable, data may be accessed from one of the other devices.
Users of an N-Way Mirrored storage system may write data using a variety of mechanisms. For example, a write may be performed using both non-critical and critical writes. Non-critical writes are typically write operations for which interruptions, or partially-completed operations, need not be detected and/or corrected. Critical writes typically include operations for which interruptions are detected and/or corrected. Correction may include, for instance, ensuring that copies of the data on a storage device are the same, even if the data represents only a partially completed critical write operation. However, during a critical write, an interruption may occur which may call into question the validity of the data. Such an interruption may defeat the very purpose of a data storage system, namely the establishment of a valid data set, especially in an environment in which devices may be added and/or removed, and in which recovery from interruption during an update of the storage devices may be achieved.
Therefore, it would be desirable to provide a method of managing data in a storage system.
Accordingly, the present invention is directed to a method of managing data in a storage system. In a first aspect of the present invention, a method of performing a write to a data storage system including a first storage device and a second storage device includes writing a first set of header information to a first storage device and a second storage device. The first set of header information includes a first sequence number and a second sequence number, in which the first set of header information includes a first sequence number incremented to indicate a change from the second sequence number. Data is written to the first storage device and the second storage device. Then, a second set of header information is written to a first storage device and a second storage device. The second set of header information includes a first sequence number and a second sequence number, in which the second set of header information includes a second sequence number incremented to correspond to the first sequence number.
In a second aspect of the present invention, a data storage system includes a first data storage device and a second data storage device suitable for storing electronic data. A data storage controller suitable for performing a program of instructions is coupled to the first data storage device and the second data storage device. The program of instruction configures the data storage controller to write a first set of header information to the first storage device and the second storage device. The first set of header information includes a first sequence number incremented to indicate initiation of a write operation. Data is written to the first storage device and the second storage device. A second set of header information is written to the first storage device and the second storage device, wherein the second set of header information includes a second sequence number incremented to indicate completion of the data write.
In a third aspect of the present invention, a method, includes obtaining a database identifier from a data storage device included in a data storage system. The obtained database identifier is compared with a previously stored database identifier, wherein if the obtained data identifier does not correspond with a previously stored database identifier, the data storage device is not native to a data storage system